<?php
/*
1.定义一个函数，该参数是一个只有0或1组成的字符串，
计算字符串中，1连续出现的最多次数，输出该次数值，以及该 连续1 的起始下标
例如: $s = "01011011001111100110100";// 最大连续出现5次, 起始下标 10,14
*/
function countOne($str) {
    if(gettype($str) != 'string'){
        return 0;
    }
    $arr = preg_split("/0+/", $str);
    $count = 0;
    $one = "";
    foreach ($arr as $val) {
        $len = mb_strlen($val);
        if( $len > $count ){
            $count = $len;
            $one = $val;
        }
    }
    $start = mb_strpos($str, $one);
    $end = $start + $count - 1;
    return [
        "count" => $count,
        "start" => $start,
        "end" => $end
    ];
}
$s = "010110110011111011111110011111110110100";
print_r(countOne($s));
echo "<br>";

/*
2.定义一个函数，用户传入一个字符串，该字符串内只有小写英文字母，
统计并输出该字符串中每种字符出现的次数。
例如： $s = "axacabxxbaa";
输出的结果(大致)如下:
a:5
x:3
c:1
b:2
*/
function showCharCount($str) {
    // echo $str;
    // echo "<br>";
    $oldLen = mb_strlen($str);
    if(!$oldLen){// 没有剩余字符了
        return;
    }
    $s = $str[0];// 当前字符
    $str = str_replace($s, "", $str);
    $newLen = mb_strlen($str);
    $count = $oldLen - $newLen;// 当前字符个数
    echo "$s : $count";
    echo "<br>";
    // echo $str;
    // echo "<br>";
    showCharCount($str);// 使用递归
}
$str = "asdasdqweasd";
echo $str;
echo "<br>";
showCharCount($str);

?>